Page({
  //用户拒绝处理方案
  async onLocation1() {
    try {
      const res = await wx.getLocation()
      console.log(res)
    } catch (error) {
      wx.toast({ title: '授权地址位置被拒绝' })
    }
  },
  //拒绝授权后的处理方案
  async onLocation2() {
    //调用wx.getSetting查询用户授权 查询用户是否授权了位置信息
    //authsetting包含了小程序向用户请求的权限 返回在结果里 true是同意 false是拒绝授权
    const { authSetting } = await wx.getSetting()
    console.log(authSetting)

    // scope.userLocation用户是否授权获取了地理信息
    //如果没有授权或者请求 scope.userLocation则不存在 undefind
    //允许 scope.userLocation    true
    //拒绝 scope.userLocation    false
    console.log(authSetting['scope.userLocation'])
  },

  async onLocation() {
    const { authSetting } = await wx.getSetting()
    console.log(authSetting['scope.userLocation'])
    if (authSetting['scope.userLocation'] === false) {
      //用户拒绝授权位置 ,向用户再次发起授权
      // 这时候需要询问用户
      const modalRes = await wx.Model({
        title: '授权提示',
        content: '需要获取地理位置信息,请确认授权'
      })

      //用户点击取消
      if (!modalRes) return wx.toast({ title: '您拒绝了授权' })
      //用户点击确定 同意授权
      else {
        const { authSetting } = await wx.openSetting()
        if (!authSetting['scope.userLocation'])
          return wx.toast({ title: '授权失败' })
        //如果用户更新了授权信息就获取用户位置
        else {
          try {
            const res = await wx.getLocation()
            console.log(res)
          } catch (error) {
            wx.toast({
              title: '用户拒绝授权位置信息'
            })
          }
        }
      }
    } else {
      try {
        const res = await wx.getLocation()
        console.log(res)
      } catch (error) {
        wx.toast({
          title: '用户拒绝授权位置信息'
        })
      }
    }
  }
})
